#ifndef _CP_DIALOGS_H__
#define _CP_DIALOGS_H__

#ifdef __cplusplus
extern "C" {
#endif


typedef struct OpenFileOptions
{
    const char* title;
    
    char choose_files;
    char choose_directories;
    char show_hidden;
    
    const char** allowed_extensions_OSX;
    int num_allowed_extensions_OSX;
    
    const char* filter_string_WIN;
    
    const char* init_file;
    
} OpenFileOptions;

typedef struct SaveFileOptions
{
    const char* title;
    
    char show_hidden;
    
    const char** allowed_extensions_OSX;
    int num_allowed_extensions_OSX;
    
    const char* filter_string_WIN;
    
    const char* init_file;
    
} SaveFileOptions;

typedef struct ColorPickerOptions
{
    char use_alpha;
    // initial_color  // Win: CC_RGBINIT
    
} ColorPickerOptions;

OpenFileOptions make_open_options();
SaveFileOptions make_save_options();
ColorPickerOptions make_color_picker_options();

int open_file_dialog(char* result, int result_size, OpenFileOptions* options);
int open_files_dialog(char** result, int max_results, int result_size, OpenFileOptions* options);
int save_file_dialog(char* result, int result_size, SaveFileOptions* options);
int color_picker_dialog(int* r, int* g, int* b, int* a, ColorPickerOptions* options);


#ifdef __cplusplus
}
#endif

#endif
